package game.display;

import game.Engine.Entity.Player;
import game.Input.InputEngine;

/** Loads all the images and their animations into the
 * game so they can be displayed
 * 
 * @author DMEComputer
 *
 */

public enum Images {
         CURSOR(InputEngine.loadImage("cursor")),
         
         PLAYERSTANDING(InputEngine.loadImage("playerStanding")),
         PLAYERSTANDING_RED(InputEngine.loadImage("playerStanding Red")),
         PLAYERSTANDING_BLUE(InputEngine.loadImage("playerStanding Blue")),
         PLAYERSTANDING_GREEN(InputEngine.loadImage("playerStanding Green")),
         PLAYERSTANDING_YELLOW(InputEngine.loadImage("playerStanding Yellow")),
         
         PLAYERDEAD(
               InputEngine.loadAnimation(
               new String[] { "playerDead1", "playerDead2", "playerDead3", "playerDead4" },250000000)),
         PLAYERDEAD_RED(
       		   InputEngine.loadAnimation(
               new String[] { "playerDead1 Red", "playerDead2 Red", "playerDead3 Red", "playerDead4 Red" },250000000)),  
         PLAYERDEAD_BLUE(
               InputEngine.loadAnimation(
               new String[] { "playerDead1 Blue", "playerDead2 Blue", "playerDead3 Blue", "playerDead4 Blue" },250000000)), 
         PLAYERDEAD_GREEN(
               InputEngine.loadAnimation(
               new String[] { "playerDead1 Green", "playerDead2 Green", "playerDead3 Green", "playerDead4 Green" },250000000)), 
         PLAYERDEAD_YELLOW(
               InputEngine.loadAnimation(
               new String[] { "playerDead1 Yellow", "playerDead2 Yellow", "playerDead3 Yellow", "playerDead4 Yellow" },250000000)), 
                     
         PLAYERJUMPINGSTILL(
               InputEngine.loadAnimation(new String[] { "playerJumping1", "playerStanding" },
               new long[] { Player.JUMP_TIME, 100000}, false)),
         PLAYERJUMPINGSTILL_RED(
               InputEngine.loadAnimation(new String[] { "playerJumping1 Red", "playerStanding Red" },
               new long[] { Player.JUMP_TIME, 100000}, false)),      
         PLAYERJUMPINGSTILL_BLUE(
               InputEngine.loadAnimation(new String[] { "playerJumping1 Blue", "playerStanding Blue" },
               new long[] { Player.JUMP_TIME, 100000}, false)),      
         PLAYERJUMPINGSTILL_GREEN(
               InputEngine.loadAnimation(new String[] { "playerJumping1 Green", "playerStanding Green" },
               new long[] { Player.JUMP_TIME, 100000}, false)),      
         PLAYERJUMPINGSTILL_YELLOW(
               InputEngine.loadAnimation(new String[] { "playerJumping1 Yellow", "playerStanding Yellow" },
               new long[] { Player.JUMP_TIME, 100000}, false)),      

         PLAYERJUMPINGRIGHT(InputEngine.loadAnimation(new String[] { "playerJumpingRight", "playerStanding" },
                 new long[] { Player.JUMP_TIME, 100000}, false)), 
         PLAYERJUMPINGRIGHT_RED(InputEngine.loadAnimation(new String[] { "playerJumpingRight Red", "playerStanding Red" },
                 new long[] { Player.JUMP_TIME, 100000}, false)),        
         PLAYERJUMPINGRIGHT_BLUE(InputEngine.loadAnimation(new String[] { "playerJumpingRight Blue", "playerStanding Blue" },
                 new long[] { Player.JUMP_TIME, 100000}, false)), 
         PLAYERJUMPINGRIGHT_GREEN(InputEngine.loadAnimation(new String[] { "playerJumpingRight Green", "playerStanding Green" },
                 new long[] { Player.JUMP_TIME, 100000}, false)), 
         PLAYERJUMPINGRIGHT_YELLOW(InputEngine.loadAnimation(new String[] { "playerJumpingRight Yellow", "playerStanding Yellow" },
                 new long[] { Player.JUMP_TIME, 100000}, false)), 
                 
         PLAYERJUMPINGLEFT(InputEngine.loadAnimation(new String[] { "playerJumpingLeft", "playerStanding" },
                 new long[] { Player.JUMP_TIME, 100000}, false)), 
         PLAYERJUMPINGLEFT_RED(InputEngine.loadAnimation(new String[] { "playerJumpingLeft Red", "playerStanding Red" },
                 new long[] { Player.JUMP_TIME, 100000}, false)), 
         PLAYERJUMPINGLEFT_BLUE(InputEngine.loadAnimation(new String[] { "playerJumpingLeft Blue", "playerStanding Blue" },
                 new long[] { Player.JUMP_TIME, 100000}, false)),
         PLAYERJUMPINGLEFT_GREEN(InputEngine.loadAnimation(new String[] { "playerJumpingLeft Green", "playerStanding Green" },
                 new long[] { Player.JUMP_TIME, 100000}, false)),
         PLAYERJUMPINGLEFT_YELLOW(InputEngine.loadAnimation(new String[] { "playerJumpingLeft Yellow", "playerStanding Yellow" },
                 new long[] { Player.JUMP_TIME, 100000}, false)),
                                         
         PLAYERSLIDINGLEFT(InputEngine.loadImage("playerSlidingLeft")), 
         PLAYERSLIDINGLEFT_RED(InputEngine.loadImage("playerSlidingLeft Red")), 
         PLAYERSLIDINGLEFT_BLUE(InputEngine.loadImage("playerSlidingLeft Blue")), 
         PLAYERSLIDINGLEFT_GREEN(InputEngine.loadImage("playerSlidingLeft Green")), 
         PLAYERSLIDINGLEFT_YELLOW(InputEngine.loadImage("playerSlidingLeft Yellow")), 

         PLAYERMOVINGLEFT1(InputEngine.loadImage("playerMovingLeft1")), 
         PLAYERMOVINGLEFT1_RED(InputEngine.loadImage("playerMovingLeft1 Red")), 
         PLAYERMOVINGLEFT1_BLUE(InputEngine.loadImage("playerMovingLeft1 Blue")), 
         PLAYERMOVINGLEFT1_GREEN(InputEngine.loadImage("playerMovingLeft1 Green")), 
         PLAYERMOVINGLEFT1_YELLOW(InputEngine.loadImage("playerMovingLeft1 Yellow")), 
         
         PLAYERMOVINGLEFT2(InputEngine.loadImage("playerMovingLeft2")),
         PLAYERMOVINGLEFT2_RED(InputEngine.loadImage("playerMovingLeft2 Red")),
         PLAYERMOVINGLEFT2_BLUE(InputEngine.loadImage("playerMovingLeft2 Blue")),
         PLAYERMOVINGLEFT2_GREEN(InputEngine.loadImage("playerMovingLeft2 Green")),
         PLAYERMOVINGLEFT2_YELLOW(InputEngine.loadImage("playerMovingLeft2 Yellow")),
         
         PLAYERMOVINGLEFT3(InputEngine.loadImage("playerMovingLeft3")), 
         PLAYERMOVINGLEFT3_RED(InputEngine.loadImage("playerMovingLeft3 Red")), 
         PLAYERMOVINGLEFT3_BLUE(InputEngine.loadImage("playerMovingLeft3 Blue")), 
         PLAYERMOVINGLEFT3_GREEN(InputEngine.loadImage("playerMovingLeft3 Green")), 
         PLAYERMOVINGLEFT3_YELLOW(InputEngine.loadImage("playerMovingLeft3 Yellow")), 
                  
         PLAYERMOVINGLEFT4(InputEngine.loadImage("playerMovingLeft")), 
         PLAYERMOVINGLEFT4_RED(InputEngine.loadImage("playerMovingLeft Red")),
         PLAYERMOVINGLEFT4_BLUE(InputEngine.loadImage("playerMovingLeft Blue")),
         PLAYERMOVINGLEFT4_GREEN(InputEngine.loadImage("playerMovingLeft Green")),
         PLAYERMOVINGLEFT4_YELLOW(InputEngine.loadImage("playerMovingLeft Yellow")),
                  
         PLAYERMOVINGRIGHT1(InputEngine.loadImage("playerMovingRight1")), 
         PLAYERMOVINGRIGHT1_RED(InputEngine.loadImage("playerMovingRight1 Red")),
         PLAYERMOVINGRIGHT1_BLUE(InputEngine.loadImage("playerMovingRight1 Blue")),
         PLAYERMOVINGRIGHT1_GREEN(InputEngine.loadImage("playerMovingRight1 Green")),
         PLAYERMOVINGRIGHT1_YELLOW(InputEngine.loadImage("playerMovingRight1 Yellow")),
         
         PLAYERMOVINGRIGHT2(InputEngine.loadImage("playerMovingRight2")), 
         PLAYERMOVINGRIGHT2_RED(InputEngine.loadImage("playerMovingRight2 Red")),
         PLAYERMOVINGRIGHT2_BLUE(InputEngine.loadImage("playerMovingRight2 Blue")),
         PLAYERMOVINGRIGHT2_GREEN(InputEngine.loadImage("playerMovingRight2 Green")),
         PLAYERMOVINGRIGHT2_YELLOW(InputEngine.loadImage("playerMovingRight2 Yellow")),
         
         
         PLAYERMOVINGRIGHT3(InputEngine.loadImage("playerMovingRight3")), 
         PLAYERMOVINGRIGHT3_RED(InputEngine.loadImage("playerMovingRight3 Red")),
         PLAYERMOVINGRIGHT3_BLUE(InputEngine.loadImage("playerMovingRight3 Blue")),
         PLAYERMOVINGRIGHT3_GREEN(InputEngine.loadImage("playerMovingRight3 Green")),
         PLAYERMOVINGRIGHT3_YELLOW(InputEngine.loadImage("playerMovingRight3 Yellow")),
          
         PLAYERMOVINGRIGHT4(InputEngine.loadImage("playerMovingRight")), 
         PLAYERMOVINGRIGHT4_RED(InputEngine.loadImage("playerMovingRight Red")),
         PLAYERMOVINGRIGHT4_BLUE(InputEngine.loadImage("playerMovingRight Blue")),
         PLAYERMOVINGRIGHT4_GREEN(InputEngine.loadImage("playerMovingRight Green")),
         PLAYERMOVINGRIGHT4_YELLOW(InputEngine.loadImage("playerMovingRight Yellow")),
                  
         PLAYERSLIDINGRIGHT(InputEngine.loadImage("playerSlidingRight")), 
         PLAYERSLIDINGRIGHT_RED(InputEngine.loadImage("playerSlidingRight Red")),
         PLAYERSLIDINGRIGHT_BLUE(InputEngine.loadImage("playerSlidingRight Blue")),
         PLAYERSLIDINGRIGHT_GREEN(InputEngine.loadImage("playerSlidingRight Green")),
         PLAYERSLIDINGRIGHT_YELLOW(InputEngine.loadImage("playerSlidingRight Yellow")),
         
         PLAYERSLIDINGSTILL(InputEngine.loadImage("playerSlidingStill")), 
         PLAYERSLIDINGSTILL_RED(InputEngine.loadImage("playerSlidingStill Red")), 
         PLAYERSLIDINGSTILL_BLUE(InputEngine.loadImage("playerSlidingStill Blue")), 
         PLAYERSLIDINGSTILL_GREEN(InputEngine.loadImage("playerSlidingStill Green")), 
         PLAYERSLIDINGSTILL_YELLOW(InputEngine.loadImage("playerSlidingStill Yellow")), 
         
         ALIENMOVING(InputEngine.loadAnimation(new String[]{"Alien1","Alien2"},500000000)),
         ALIENMOVING_RED(InputEngine.loadAnimation(new String[]{"Alien1 Red","Alien2 Red"},500000000)),
         ALIENMOVING_BLUE(InputEngine.loadAnimation(new String[]{"Alien1 Blue","Alien2 Blue"},500000000)),
         ALIENMOVING_GREEN(InputEngine.loadAnimation(new String[]{"Alien1 Green","Alien2 Green"},500000000)),
         
         ALIENATTACKING(InputEngine.loadImage("AlienAttacking")),
         ALIENATTACKING_RED(InputEngine.loadImage("AlienAttacking Red")),
         ALIENATTACKING_BLUE(InputEngine.loadImage("AlienAttacking Blue")),
         ALIENATTACKING_GREEN(InputEngine.loadImage("AlienAttacking Green")),
         
         ALIENDYING(InputEngine.loadAnimation(new String[]{"AlienDying","AlienExploding1","AlienExploding2","AlienExploding3"}, 250000000)),
         ALIENDYING_RED(InputEngine.loadAnimation(new String[]{"AlienDying Red","AlienExploding1 Red","AlienExploding2 Red","AlienExploding3 Red"}, 250000000)),
         ALIENDYING_BLUE(InputEngine.loadAnimation(new String[]{"AlienDying Blue","AlienExploding1 Blue","AlienExploding2 Blue","AlienExploding3 Blue"}, 250000000)),
         ALIENDYING_GREEN(InputEngine.loadAnimation(new String[]{"AlienDying Green","AlienExploding1 Green","AlienExploding2 Green","AlienExploding3 Green"}, 250000000)),
         
         LIGHTNINGPOWERUP(
               InputEngine.loadAnimation(new String[] { "lightningpickup1", "lightningpickup2",
               "lightningpickup3", "lightningpickup4", "lightningpickup5",
               "lightningpickup6", "lightningpickup7", "lightningpickup8",
               "lightningpickup9", "lightningpickup10", "lightningpickup11",
               "lightningpickup10", "lightningpickup9", "lightningpickup8",
               "lightningpickup7", "lightningpickup6", "lightningpickup5",
               "lightningpickup4", "lightningpickup3", "lightningpickup2",
               "lightningpickup1" }, 18000000)),
         FIREPOWERUP(InputEngine.loadAnimation(new String[]{"Magic1Obtainstanding","Magic1Obtain","Magic1Obtain2","Magic1Obtain3","Magic1Obtain4","Magic1Obtain5",}, 180000000)),
         GREENPOWERUP(InputEngine.loadAnimation(new String[]{"Green Powerup1","Green Powerup2","Green Powerup3","Green Powerup4","Green Powerup5","Green Powerup4","Green Powerup3","Green Powerup2"}, 180000000)),
         WATERPOWERUP(InputEngine.loadAnimation(new String[]{"NewWaterPickup1", "NewWaterPickup2", "NewWaterPickup3"}, 180000000)),
         HEALTH(InputEngine.loadAnimation(new String[] {"Health1","Health2","Health3","Health4","Health3","Health2",}, 180000000)),
         DOUBLEJUMPPOWERUP(InputEngine.loadAnimation(new String[]{"doubleJump1","doubleJump2"},250000000)),
         POWERUP(InputEngine.loadAnimation(new String[] { "powerup1", "powerup2","powerup3", "powerup4" }, 150)),
        
         AIRWEAPON(InputEngine.loadAnimation(new String[]{"WhiteProjectile1","WhiteProjectile2","WhiteProjectile3","WhiteProjectile4", "WhiteProjectile5","WhiteProjectile4","WhiteProjectile3","WhiteProjectile2"}, 100000000)),
         FIREWEAPON(InputEngine.loadAnimation(new String[]{"FireProjectile1","FireProjectile2","FireProjectile3","FireProjectile4", "FireProjectile5","FireProjectile4","FireProjectile3","FireProjectile2"}, 100000000)),
         EARTHWEAPON(InputEngine.loadAnimation(new String[]{"EarthProjectile1","EarthProjectile2","EarthProjectile3","EarthProjectile4", "EarthProjectile5","EarthProjectile4","EarthProjectile3","EarthProjectile2"}, 100000000)),
         WATERWEAPON(InputEngine.loadAnimation(new String[]{"WaterProjectile1","WaterProjectile2","WaterProjectile3","WaterProjectile4", "WaterProjectile5","WaterProjectile4","WaterProjectile3","WaterProjectile2"}, 100000000)),
         LIGHTNINGWEAPON(InputEngine.loadAnimation(new String[]{"YellowProjectile1","YellowProjectile2","YellowProjectile3","YellowProjectile4", "YellowProjectile5","YellowProjectile4","YellowProjectile3","YellowProjectile2"}, 100000000)),
         
         WHITEEXPLOSION(InputEngine.loadImage("AirExplosion")),
         REDEXPLOSION(InputEngine.loadImage("FireExplosion")),
         BLUEEXPLOSION(InputEngine.loadImage("WaterExplosion")),
         GREENEXPLOSION(InputEngine.loadImage("GrassExplosion")),
         YELLOWEXPLOSION(InputEngine.loadImage("LightningExplosion")),
                  
         TILE_A(InputEngine.loadImage("tile_A")),
         TILE_B(InputEngine.loadImage("tile_B")),
         TILE_C(InputEngine.loadImage("tile_C")),
         TILE_D(InputEngine.loadImage("tile_D")),
         TILE_E(InputEngine.loadImage("tile_E")),
         TILE_F(InputEngine.loadImage("tile_F")),
         TILE_G(InputEngine.loadImage("tile_G")),
         TILE_H(InputEngine.loadImage("tile_H")),
         TILE_I(InputEngine.loadImage("tile_I")),
         TILE_J(InputEngine.loadImage("tile_J")),
         TILE_K(InputEngine.loadImage("tile_K")),
         TILE_L(InputEngine.loadImage("tile_L")),
         TILE_M(InputEngine.loadImage("tile_M")),
         TILE_N(InputEngine.loadImage("tile_N")),
         
         STAR(InputEngine.loadImage("Star")),
         ASTEROID(InputEngine.loadImage("Asteroid")),
         
         SPAWNPOINT(InputEngine.loadAnimation(new String[]{"SpawnPoint1","SpawnPoint2","SpawnPoint3","SpawnPoint4","SpawnPoint5","SpawnPoint6","SpawnPoint7","SpawnPoint8"}, 100000000));
         
         
         
   private final Animation a;

   Images(Animation a) {
      this.a = a;
   }

   /** Returns the clone of an animation
    * 
    * @return the clone of an animation
    */
   
   public Animation image() {
      return a.clone();
   }
   
   /** Returns the animation
    * 
    * @return the animation
    */
   
   public Animation staticImage() {
      return a;
   }
}
